//-----------------------------------------------------------------------------
// Name: InanimateObjectManager.h
// Auth: Dante Ratto, Robert Darty, & Paul Godfrey
// Desc: Keeps a list of InanimateObjects
//-----------------------------------------------------------------------------

#ifndef _InanimateOBJECTMANAGER_
#define _InanimateOBJECTMANAGER_

#include "SharedConstants.h"
#include "InanimateObject.h"
#include <list>

using std::list;

//-----------------------------------------------------------------------------
// cInanimateObjectManager:
//-----------------------------------------------------------------------------
class cInanimateObjectManager
{
public:
	// Constructors:
	cInanimateObjectManager();
	~cInanimateObjectManager();

	// list:
	list<cInanimateObject> liInanimateObject;
	list<cInanimateObject>::iterator itInanimateObject;

	// cInanimateObjectManager Methods:
	
	//-----------------------------------------------------------------------------
	void AddInanimateObject(enum eInanimateType, float, float, float);
	// Desc:Adds an inanimate object to list

	//-----------------------------------------------------------------------------
	void AddInanimateObjectFence(enum eInanimateType eType, float x, float z, float xoff, float zoff);
	// Desc: Adds an fence to list

	//-----------------------------------------------------------------------------
	void RemoveInanimateObject();
	// Desc: Deletes inanimate object from list
	
	//-----------------------------------------------------------------------------
	void UpdateInanimateObject(float);
	// Desc: Updates and draws inanimate object

	//-----------------------------------------------------------------------------
	list<cInanimateObject>* GetInanimateList();
	// Desc: Returns list of inaniamtes
};

//-----------------------------------------------------------------------------
// Functions:
//-----------------------------------------------------------------------------
cInanimateObjectManager* GetInanimateObjectManager();

#endif